package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.request.SwitchCabinetCreateReqDTO;
import com.huaxin.device.dto.request.SwitchCabinetPageListReqDTO;
import com.huaxin.device.dto.request.SwitchCabinetUpdateReqDTO;
import com.huaxin.device.models.SwitchCabinet;

import java.util.List;

public interface SwitchCabinetService extends IService<SwitchCabinet> {

    /**
     * 创建变电箱
     */
    ResponseResult<SwitchCabinet> create(SwitchCabinetCreateReqDTO in);

    /**
     * 根据ID查询变电箱
     */
    SwitchCabinet getByCabinetId(String id);

    /**
     * 更新变电箱
     */
    ResponseResult<String> update(SwitchCabinetUpdateReqDTO in);

    /**
     * 删除变电箱
     */
    ResponseResult<String> delete(String id);

    /**
     * 分页查询变电箱
     */
    ResponseResult<IPage<SwitchCabinet>> pageQuery(SwitchCabinetPageListReqDTO in);

    /**
     * 根据配电房ID查询变电箱列表
     */
    java.util.List<SwitchCabinet> getByRoomId(String roomId);

    /**
     * 根据ID列表查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByIds(List<String> ids);

    /**
     * 根据组织ID查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByOrgId(String orgId);

    /**
     * 根据组织ID列表查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByOrgIds(List<String> orgIds);

    /**
     * 根据家庭ID查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByFamilyId(String familyId);

    /**
     * 根据家庭ID列表查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByFamilyIds(List<String> familyIds);

    /**
     * 根据类型查询变电箱列表
     */
    ResponseResult<List<SwitchCabinet>> listByType(String type);
}